// #include <cstddef>
struct ListData
{
   void init();
   bool operator==(ListData& comData);
   void operator=(ListData* );
   void show();

   int a;
   float b;
};



class SequenceList
{
    public:
    friend SequenceList* InitList(int size);                                                 
    void ClearList();                                                        
    int IfEmpty();                                                          //return 0 or 1
    int ListLength();                                                       //return length 
    ListData& Getelement(int location);                                     //return element locate at the location
    // int LocateElement(const ListData& data2,bool compare() );            //find data by someway and return location  --at last ,I think this function should be implement by ListData
    int LocateElement(ListData& data);                                      //find something equal data and return location . Detail code is implemented bt ListData overload ==
    int Insert(int location,ListData& data);                                //return 0 or 1
    int Delet(int location);                                                //return 0 or 1
    void ShowData();                                                        //show data one by one ## remember that we use it by calling show function provided by data one by one
    ListData& operator[](int i);                                            //overload []
    ~SequenceList();

    private:
    ListData* data=0;
    int memSize,dataSize;
};


SequenceList* InitList(int size);
